<%@page import="com.fbty.mt.domain.Item"%>
<%@page import="com.fbty.mt.service.ItemService"%>
<%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@page import="org.springframework.web.context.WebApplicationContext"%>
<%@ page language="java" import="java.util.*,java.sql.*, java.text.DecimalFormat" pageEncoding="utf-8"%>
<%@ include file="Config.jsp" %>
<%!
	/**
	 * 对字符串进行md5编码
	 * @param String md5
	 * @return String 编码
	 */
	String MD5(String md5) {
	try {
		java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
		byte[] array = md.digest(md5.getBytes());
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < array.length; ++i) {
			sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));
		}
		return sb.toString();
	} catch (java.security.NoSuchAlgorithmException e) {

	}
	return null;
}
%>
<%
/*
 *====================================================================
 *					www.YiiPay.com
 *
 *                易支付 提供技术支持
 *
 *     		本页面为支付完成后获取返回的参数及处理......
 *
 *====================================================================
*/
//System.out.println("=========================================================");
//开始接收参数 (请注意区分大小写)
//-----------------------------------------------------------------
String tradeNo    = request.getParameter("tradeNo") != null ? request.getParameter("tradeNo") : "";                         //支付宝交易号
Float  money      = request.getParameter("Money") != null ? Float.parseFloat(request.getParameter("Money")) : 0L;           //付款金额
String title      = request.getParameter("title") != null ? request.getParameter("title") : "";                             //付款说明，一般是网站用户名
String memo       = request.getParameter("memo") != null ? request.getParameter("memo") : "";                               //备注
String sign		  =	request.getParameter("Sign") != null ? request.getParameter("Sign") : "";                      			//签名
//-----------------------------------------------------------------
String strMoney   = new DecimalFormat("#.00").format(money);
System.out.println(memo+"--"+sign+"--"+title);
System.out.println(String.format("tradeNo:[%s],money:[%s], title:[%s], memo:[%s], sign:[%s]", tradeNo, strMoney, title, memo, sign));
//得到当前系统时间
java.util.Date currentTime = new java.util.Date();
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeNow = formatter.format(currentTime).toString();
//System.out.println("time now:" + timeNow);

String md5 = MD5(String.valueOf(WebID)  + Key + tradeNo + strMoney + title+memo);
System.out.println("md5:" + md5 + ",sign:" + sign);
//if (sign.toUpperCase().equals(md5.toUpperCase()) ) {
	/*付款成功
	 ********************************************************************
	 会员使用支付宝付款时，可以放2个参数，分别是“付款说明”(title)和“备注”(memo)，您可以灵活使用这2个参数进行自动发货
	 $UserName	=	$title	'如充值的用户名放在title中
	 $remark	=	$memo	'如充值类型放在memo中（付款成功后是开通VIP还是开通其它服务等不同类型）
	 *******************************************************************
	 *******************************************************************
	 为了防止用户填错“付款说明”或“备注”导致充值失败，您可以先检查用户名是否存在，再决定自动发货，以解决这个问题
	//$UserNameIsExist	=	true;	//此处修改为您的检测代码,当然如果您觉得没有必要，也可以不检测
	*/
	 try{
		WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
		ItemService itemService = (ItemService)wac.getBean("itemService");
		Item item = itemService.findByNo(title);
		if(item!=null){
			itemService.updateSure(item.getId(), item.getUid(),session);
			response.flushBuffer();
			response.getWriter().print("Success");	
		}else{
			response.getWriter().print("Fail");	
		}
	 }catch(Exception e){
		 e.printStackTrace();
	 }			//此处返回值（Success）不能修改，当检测到此字符串时，就表示充值成功				
//} else {
//	response.getWriter().print("Fail");
//}
%>